using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BaseData.CommonLib.Models;
using Swimj.CommonLib.Base;

namespace BaseData.RazorLib.Services
{
    public interface ICustomerService
    {
        Task<PaginatedResult<CustomerInfoResponseDto>?> QueryCustomersByPage(CustomerSearchRequestDto searchRequestDto);
    
        Task<Result<CustomerInfoResponseDto>?> UpdateCustomer(int key, CustomerEditRequestDto editRequestDto);
    
        Task<Result<CustomerInfoResponseDto>?> CreateCustomer(CustomerEditRequestDto editRequestDto);
    
        Task<Result<CustomerInfoResponseDto>?> GetCustomer(int key);

        Task<Result<IList<CustomerInfoResponseDto>>?> QueryCustomers(CustomerSearchRequestDto searchRequestDto);
    }
}